package com.example.chcrm.entity.supplier;

import com.baomidou.mybatisplus.annotation.*;
import com.example.chcrm.entity.common.OperateRecord;
import com.example.chcrm.entity.vehicle.ShipDeployInfo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @Author 邹
 * @Date 2025/4/20 22:57
 * @Version 1.0
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class WaterwaySupplierShip implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.INPUT)
    private String id;
    @NotBlank(message = "所属供应商id不能为空")
    private String supplierId;      //所属供应商id
    @NotBlank(message = "所属供应商名称不能为空")
    private String supplierName;    //所属供应商名字
    @NotBlank(message = "所属船舶名称不能为空")
    private String name;
    @NotBlank(message = "联系电话不能为空")
    private String phone;       //联系电话
    @NotNull(message = "总吨不能为空")
    private Double grossTon;    //总吨
    @NotNull(message = "载重吨不能为空")
    private Double loadTon;         //载重吨
    @NotNull(message = "长不能为空")
    private Double longSize;    //长
    @NotNull(message = "宽不能能为空")
    private Double widthSize;   //宽
    @NotNull(message = "高度不能为空")
    private Double heightSize;  //高
    private Integer isEnable;       //0禁用 1启用
    private Integer status;         //出航状态 0：空闲中 1：待出航 2：出航中
    private Integer deployStatus;   //是否有调配任务 0:否 1：是

    @TableField(fill = FieldFill.INSERT)
    private Date createTime;    //创建时间

    @TableLogic(value = "0", delval = "-1")
    private Integer isDeleted;  //是否删除 0：否 1：是

    @TableField(exist = false)
    private Integer page = 1;
    @TableField(exist = false)
    private Integer rows = 10;
    /**
     * 调配任务信息
     */
    @TableField(exist = false)
    private ShipDeployInfo sdi;
    @TableField(exist = false)
    private List<OperateRecord> operateRecordList;

    @TableField(exist = false)
    private String voyageNumber;
    @TableField(exist = false)
    private String startPortId;
    @TableField(exist = false)
    private String deliveryPortId;
}
